.\"
.\" Copyright 1998 by the Massachusetts Institute of Technology.
.\" SPDX-License-Identifier: MIT
.\"
.TH ARES_PARSE_SRV_REPLY 3 "4 August 2009"
.SH NAME
ares_parse_srv_reply \- Parse a reply to a DNS query of type SRV
.SH SYNOPSIS
.nf
#include <ares.h>

int ares_parse_srv_reply(const unsigned char* \fIabuf\fP, int \fIalen\fP,
                         struct ares_srv_reply** \fIsrv_out\fP);
.fi
.SH DESCRIPTION
The
.B ares_parse_srv_reply
function parses the response to a query of type SRV into a
linked list of
.I struct ares_srv_reply 
The parameters
.I abuf
and
.I alen
give the contents of the response.  The result is stored in allocated
memory and a pointer to it stored into the variable pointed to by
.IR srv_out .
It is the caller's responsibility to free the resulting
.IR srv_out
structure when it is no longer needed using the function
\fBares_free_data(3)\fP.
.PP
The structure 
.I ares_srv_reply
contains the following fields:
.sp
.in +4n
.nf
struct ares_srv_reply {
    struct ares_srv_reply  *next;
    unsigned short weight;
    unsigned short priority;
    unsigned short port;
    char *host;
};
.fi
.in
.PP
.SH RETURN VALUES
.B ares_parse_srv_reply
can return any of the following values:
.TP 15
.B ARES_SUCCESS
The response was successfully parsed.
.TP 15
.B ARES_EBADRESP
The response was malformatted.
.TP 15
.B ARES_ENODATA
The response did not contain an answer to the query.
.TP 15
.B ARES_ENOMEM
Memory was exhausted.
.SH AVAILABILITY
This function was first introduced in c-ares version 1.7.0.
.SH SEE ALSO
.BR ares_query (3)
.BR ares_free_data (3)
